{
 "metadata": {
  "name": "",
  "signature": "sha256:26046efd1c1ddfe161df4c7280123425217d0fea36c8f8aaeda78f710960efd1"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%matplotlib inline\n",
      "import matplotlib.pyplot as plt"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "MagicItemDistribution"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "from rpg import MagicItemDistribution\n",
      "\n",
      "bonus_probs = np.array([0.0, 0.55, 0.25, 0.12, 0.06, 0.02])\n",
      "stats_probs = np.ones(6) / 6.0\n",
      "rso = np.random.RandomState(234892)\n",
      "\n",
      "item_dist = MagicItemDistribution(bonus_probs, stats_probs, rso=rso)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stderr",
       "text": [
        "multinomial.py:33: RuntimeWarning: divide by zero encountered in log\n",
        "  self.logp = np.log(self.p)\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "item_dist.sample()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 3,
       "text": [
        "{'charisma': 1,\n",
        " 'constitution': 0,\n",
        " 'dexterity': 0,\n",
        " 'intelligence': 0,\n",
        " 'strength': 0,\n",
        " 'wisdom': 0}"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "item_dist.sample()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 4,
       "text": [
        "{'charisma': 0,\n",
        " 'constitution': 1,\n",
        " 'dexterity': 0,\n",
        " 'intelligence': 0,\n",
        " 'strength': 0,\n",
        " 'wisdom': 2}"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "item_dist.sample()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 5,
       "text": [
        "{'charisma': 0,\n",
        " 'constitution': 1,\n",
        " 'dexterity': 1,\n",
        " 'intelligence': 0,\n",
        " 'strength': 0,\n",
        " 'wisdom': 0}"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "item = item_dist.sample()\n",
      "item"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 6,
       "text": [
        "{'charisma': 0,\n",
        " 'constitution': 0,\n",
        " 'dexterity': 0,\n",
        " 'intelligence': 0,\n",
        " 'strength': 0,\n",
        " 'wisdom': 2}"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "item_dist.log_pmf(item)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stderr",
       "text": [
        "multinomial.py:79: RuntimeWarning: invalid value encountered in multiply\n",
        "  log_pi_xi = self.logp * x\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 7,
       "text": [
        "-4.9698132995760007"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "item_dist.pmf(item)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "0.0069444444444444441"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "DamageDistribution"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from rpg import DamageDistribution\n",
      "damage_dist = DamageDistribution(2, item_dist, num_hits=3, rso=rso)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "samples = np.array([damage_dist.sample() for i in xrange(100000)])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 10
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "minval = samples.min()\n",
      "minval"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 11,
       "text": [
        "3"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "maxval = samples.max()\n",
      "maxval"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 12,
       "text": [
        "154"
       ]
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "median = np.percentile(samples, 50)\n",
      "median"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 13,
       "text": [
        "27.0"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# plot the histogram\n",
      "plt.hist(samples, bins=samples.max() + 1, range=(0, samples.max()), histtype='step', color='k')\n",
      "# plot the minimum, maximum, and median values\n",
      "plt.vlines([minval, maxval, median], 0, 4000, color='r', linestyle='--', linewidth=2)\n",
      "\n",
      "# label axes and title\n",
      "plt.xlabel(\"Damage\")\n",
      "plt.ylabel(\"Number of samples\")\n",
      "plt.title(\"Distribution over attack damage for 2 weapons\")\n",
      "\n",
      "# make the layout nice\n",
      "plt.tight_layout()\n",
      "\n",
      "# save to file\n",
      "plt.savefig(\"damage_distribution.png\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nmw08DswGXgAGb56NnIuceOKJzJ07l9dffz3uUJxzWymW6j4zmwvsW075EqKzqfKWGQmMzHJoLses\nWbOGqVOnAtCjRw8aNmwYc0TOuS0RdxP07DPLzSqxXN2vGtSoUSPatm3L+eefT8+ePVmwYAHr169n\nw4YNcYfmXN0T0zEn9zuYdfVWx44dS8+iOnbsSJcuXSgpKeG4447jhBNOYK+99uLggw+OOUrnXGU8\nSbl6Yf78+QDcc889TJkyhQceeIAuXbrQoEEDmjZtSvfu3WOO0DlXHk9Srl658MILARgzZgy33XYb\nZ599Ns2aNWPy5MkxR+acK0/uX5Nyrhynn346kydP5qGHHuL9999nt912QxJjx47l3//+N4sXL447\nROcc9eHJvJV47LHHePvtt5k9ezbt2rWrW/dJuRrx448/llYFnnXWWbRs2ZJ33nmHX//61/zkJz/h\ngAMOYL/99os5SufqNn8yb2UquQFt4sSJLFu2jGOPPZY999yzlgPbSn4zb41o3Lgxu+22GwBvvvkm\nAH/961/55JNPuOuuuzjppJM8STkHsR1zcv9MqpI39vzzz+eAAw7g/PPPr4Xoapgnqaz705/+xMiR\nI8nLy+NnP/sZzz//fNwhORefetbjhHOJN2LECNauXcvTTz/N/Pnzuf/++9l///0ZOHAgAwcO9A6J\nnasFnqScq0CDBg3Iz8+nY8eOdO/enZdffpkWLVpw9tln895777FixYq4Q3Qu5+X+NSnnttK+++7L\nmDFjNin77//+b3r06AFENwr379+fXr16ce6558YRonM5y8+knKuGmTNnYma88cYbXH311ZSUlNTY\nowmccxvl/plUORf5/vKXv7BgwQLefPNNDjjggBiCqgHeYCIRevfuTe/evWncuDHnnXceTz31FD/8\n8AMXX3wxixYtomvXrjRv3pwBAwbwk5/8JO5wnau+mI459fJMasyYMWy77bb89re/5ZBDDok7HJcD\nTj75ZL766ivef/99brzxRnbffXfy8vJYs2YN999/PzNnzow7ROfqpNw/k6rAGWec4f21uRrTuHFj\nGjduzI477sgVV1wBwCWXXALA3Llz4wzNuTqtXp5JOVfbrrvuOo477jjuu+8+Vq9ezXvvvVf68keH\nOFex3L+ZN/jxxx+54447ALj55pt55ZVX/EzK1YopU6awYMECnnnmGZ555hlKSkpYsmQJ++23H9Om\n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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10e100210>"
       ]
      }
     ],
     "prompt_number": 14
    }
   ],
   "metadata": {}
  }
 ]
}